import baidu_ocr


# 主要关于图片信息处理，读取与识别
# 读取图片，二进制
def get_img_file(filepath):
    """
    从指定文件读取图片，以二进制的方式，貌似也可以从剪切板直接读取而跳过从本地的存取？！
    :param filepath:文件路径
    :return:二进制文件信息
    # 这上下两种方式竟然隐含了一个bug,自动关闭的打开方式经常识别不到内容?!
    # with open(filepath, 'rb') as fp:
    #     return fp.read()
    """
    # 先打开文件：
    f = open(filepath, 'rb')
    # 使用一个中间变量转存二进制图片信息
    temp = f.read()
    # 关闭文件
    f.close()
    return temp


# 主要任务是识别图片，返回文字
def img_identification(bin_obj):
    # print(type(bin_obj)) 字节类
    info_ = baidu_ocr.img_to_word(bin_obj)
    # 将获取到的信息处理成列表，每一个元素即每一行识别到的内容
    try:
        lst = []
        for line_num in range(len(info_['words_result'])):
            lst.append(info_['words_result'][line_num]['words'])
        return lst
    except KeyError:
        return 0


if __name__ == '__main__':
    filepath = './screenshot.jpg'
    bin_img = get_img_file(filepath)
    info_list = img_identification(bin_obj=bin_img)
    print(info_list)
    # 尝试多行锁定单行的思路
